const fp = require('lodash/fp');
const cars = [
    {
        name: 'Ferrari FF',
        horsepower: 660,
        dollar_value: 70000,
        in_stock: true
    },
    {
        name: 'Spyker C12 Zagato',
        horsepower: 650,
        dollar_value: 648000,
        in_stock: false
    },
    {
        name: 'Jaguar XKR-S',
        horsepower: 550,
        dollar_value: 13200,
        in_stock: false
    },
    {
        name: 'Audi R8',
        horsepower: 525,
        dollar_value: 114200,
        in_stock: false
    },
    {
        name: 'Aston Martin One-77',
        horsepower: 750,
        dollar_value: 1850000,
        in_stock: true
    },
    {
        name: 'Pagani Huayra',
        horsepower: 700,
        dollar_value: 1300000,
        in_stock: false
    },
];

const _underscore = fp.replace(/\W+/g, '_');

const sanitizeNames = function (cars) {
    // const fn = fp.flowRight(fp.map(_underscore), fp.map(fp.toLower),fp.map(fp.prop('name')));
    const fn = fp.flowRight(
        fp.map(
            fp.flowRight(
                _underscore,
                fp.toLower,
                fp.prop('name')
            )
        )
    );
    return fn(cars);
};

console.log('sanitizeNames', sanitizeNames(cars));